package com.isdepci.project.carbon.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.isdepci.framework.aspectj.lang.annotation.Excel;
import com.isdepci.framework.web.domain.BaseEntity;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 绿化碳汇对象 b_green_carbon_sink
 *
 * @author isdepci
 * @date 2025-03-29
 */
public class BGreenCarbonSink extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 项目代码 */
    //@Excel(name = "项目代码")
    private Long projectId;

    /** 名称 */
    @Excel(name = "名称")
    private String iname;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;

    /** 绿化类型 */
    @Excel(name = "绿化类型")
    private Integer greeningType;


    /** 吸收因子 */
    @Excel(name = "吸收因子")
    private BigDecimal absorptionFactor;

    /** 植绿面积 */
    @Excel(name = "植绿面积")
    private BigDecimal greeningArea;

    /** 植绿月数 */
    @Excel(name = "植绿月数")
    private Long greeningMonths;

    /** 毁绿面积 */
    @Excel(name = "毁绿面积")
    private BigDecimal destroyArea;

    /** 毁绿月数 */
    @Excel(name = "毁绿月数")
    private Long destroyMonths;

    /** 碳排放量 */
    //@Excel(name = "碳排放量")
    private BigDecimal carbonEmissions;


    /** 值类型 */
    @Excel(name = "值类型")
    private Integer valueType;

    /** 附件地址 */
    //@Excel(name = "附件地址")
    private String accessoryUrl;

    public Integer getValueType() {
        return valueType;
    }

    /** 附件名称 */
    //@Excel(name = "附件名称")
    private String accessoryName;


    public BGreenCarbonSink() {
        this.destroyArea = BigDecimal.ZERO;
        this.greeningArea = BigDecimal.ZERO;
        this.absorptionFactor = BigDecimal.ZERO;
    }


    public String getAccessoryName() {
        return accessoryName;
    }

    public void setAccessoryName(String accessoryName) {
        this.accessoryName = accessoryName;
    }


    public void setValueType(Integer valueType) {
        this.valueType = valueType;
    }

    public String getAccessoryUrl() {
        return accessoryUrl;
    }

    public void setAccessoryUrl(String accessoryUrl) {
        this.accessoryUrl = accessoryUrl;
    }

    public BigDecimal getCarbonEmissions() {
        return carbonEmissions;
    }

    public void setCarbonEmissions(BigDecimal carbonEmissions) {
        this.carbonEmissions = carbonEmissions;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setProjectId(Long projectId)
    {
        this.projectId = projectId;
    }

    public Long getProjectId()
    {
        return projectId;
    }

    public Date getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(Date creationTime) {
        this.creationTime = creationTime;
    }

    public void setGreeningType(Integer greeningType)
    {
        this.greeningType = greeningType;
    }

    public Integer getGreeningType()
    {
        return greeningType;
    }

    public String getIname() {
        return iname;
    }

    public void setIname(String iname) {
        this.iname = iname;
    }

    public void setAbsorptionFactor(BigDecimal absorptionFactor)
    {
        this.absorptionFactor = absorptionFactor;
    }

    public BigDecimal getAbsorptionFactor()
    {
        return absorptionFactor;
    }
    public void setGreeningArea(BigDecimal greeningArea)
    {
        this.greeningArea = greeningArea;
    }

    public BigDecimal getGreeningArea()
    {
        return greeningArea;
    }
    public void setGreeningMonths(Long greeningMonths)
    {
        this.greeningMonths = greeningMonths;
    }

    public Long getGreeningMonths()
    {
        return greeningMonths;
    }
    public void setDestroyArea(BigDecimal destroyArea)
    {
        this.destroyArea = destroyArea;
    }

    public BigDecimal getDestroyArea()
    {
        return destroyArea;
    }
    public void setDestroyMonths(Long destroyMonths)
    {
        this.destroyMonths = destroyMonths;
    }

    public Long getDestroyMonths()
    {
        return destroyMonths;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("greeningType", getGreeningType())
            .append("absorptionFactor", getAbsorptionFactor())
            .append("greeningArea", getGreeningArea())
            .append("greeningMonths", getGreeningMonths())
            .append("destroyArea", getDestroyArea())
            .append("destroyMonths", getDestroyMonths())
            .toString();
    }
}
